package d7_tcp04;

import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

public class Client01 {
    public static void main(String[] args) throws Exception {
        //目标: 实现TCP通信的群聊
        //1、创建socket对象, 请求与服务器的socket管道接通
        Socket socket = new Socket("127.0.0.1", 8848);

        //11、现在实现,客户收信息的-->也是的有子线成进行收数据
        //这个不影响数据的发送,主线程与子线成是并发执行的,这个一启动,主线程就往下冲了
        new ClientReaderThread(socket).start();

        //2、从socket管道中得到一个字节输出流,让数据写出去
        OutputStream os = socket.getOutputStream();

        //3、把低级字节输出流管道,包装成高级的特殊数据输出流管道(可以输出数据对于数据类型)
        DataOutputStream dos = new DataOutputStream(os);

        //5、创建一个扫描器
        Scanner sc = new Scanner(System.in);

        //7、由于要一直发送,所以,用死循进行套住
        while (true) {
            //6、提示用户进行输出数据
            System.out.println("请说:");
            //8、接受用户输入的数据
            String message = sc.next();
            //10、添加一个下线机制
            if (message.equals("exit")){
                System.out.println("退出成功");
                //关闭管道
                socket.close();
                //跳出循环
                break;
            }

            //4、开始发送消息
            dos.writeUTF(message);
            //9、进行刷新管道
            dos.flush();
        }
    }
}
